自分のサイトにインストールしたMathJaxの利用

22 1月

MathJax を使用する場合に,本家のサイトを利用するのではなく,自分のところのサーバーにインストールして利用する場合の設定に関して記述します。クロスドメインリクエストにおけるフォントの扱いがポイントとなります。OS は ubuntu ver.12 を利用しています。クロスドメインで他のサイトから研究室の JavaScript(MathJax) を利用するのですが,その際に Web フォントもクロスドメインで利用することになります。他サイトからのフォントへのリクエストに答えるためには,適切なヘッダーを付けて応答する必要があります。ヘッダーを付加するために .htaccess ファイルを使用します。

最初は .htaccess ファイルを利用できるように mod_rewrite を有効にします。後半は .htaccess ファイルの設置です。

  • /etc/apache2/sites-available/default を編集します(左記は http 用の設定ファイルです。https 用もあわせて書き換えました)。
    <directory /var/www/html/ >
                    Options Indexes FollowSymLinks MultiViews
                    AllowOverride All
                    Order allow,deny
                    allow from all
    </directory>
  • mod_rewite を有効にします。
    a2enmod rewrite
  • mod_headers を有効にします。
    a2enmod headers
  • apache を再起動します。
    sudo /etc/init.d/apache2 restart
  • (すでに MathJax がインストール済みとして : 自分のところですが参考サイト) MathJax のフォントファイルがある(例えば /var/www/html/MathJax/fonts 等)フォルダーに .htaccess ファイルを設置します。その中身は下記です(参考サイト)。css に関する記述は必要ないかもしれません。
    <filesMatch "\.(ttf|otf|eot|woff|css)$">
    <ifModule mod_headers.c>
    Header set Access-Control-Allow-Origin "*"
    </ifModule>
    </filesMatch>
  • Internet Explorer において,フォント(web fonts)の利用で難しい点がありました。どうもJavaScript のキャッシュと絡んでいたようです。javascript をキャッシュから読み込むと,それ以降のフォントもキャッシュから読み込むことになって,更新された情報となっていないようでした。過去にフォントを読み込んで,読み込みに失敗した状態がいつまでも記憶されているようでした。以前からあるのですが,IE のJavaScriptキャッシュの問題と似ています。